//请求医院列表中的所有的参数列表接口
export interface reqHospitallistParams {
    //当前页码
    page: number;
    //每页记录数
    limit: number;
    //医院编号
    hoscode?: string;
    //医院名称
    hosname?: string;
    //医院类型
    hostype?: string;
    //省编号
    provinceCode?: string;
    //市编号
    cityCode?: string;
    //区编号
    districtCode?: string;
    //医院状态
    status?: number;
}

//响应医院列表中所有数据的content的单条数据结构接口
export interface resHospitalListOneResultData {
    //序号
    id: string,
    //创建时间
    createTime: string,
    //更新时间
    updateTime: string,
    //是否被删除
    isDeleted: 0,
    //参数
    param: {
        //医院等级
        hostypeString: string,
        //医院全地址
        fullAddress: string
    },
    //医院编号
    hoscode: string,
    //医院名称
    hosname: string,
    //医院类型编号
    hostype: number,
    //省份编号
    provinceCode: number,
    //城市编号
    cityCode: number,
    //区编号
    districtCode: number,
    //地址
    address: string,
    //图片logo
    logoData: string,
    //医院介绍
    intro: string,
    //医院路线
    route: string,
    //医院状态
    status: number,

}
//之前医院content数据中单条结构
export interface x extends resHospitalListOneResultData {
    bookingRule: BookingRule
}

export interface y extends resHospitalListOneResultData {
    bookingRule: null;
}

//定义bookingRule接口类型
export interface BookingRule {
    //预约周期
    cycle: number,
    //放号时间
    releaseTime: string,
    //停挂时间
    stopTime: string,
    //退号天数
    quitDay: number,
    //退号时间
    quitTime: string,
    //预约规则详情信息
    rule: [
        string
    ]
}

//定义医院详情数据整体响应结果的接口
export interface ResHospitalDetailData {
    //预约规则
    bookingRule: BookingRule,
    //医院详情
    hospital: y
}

//响应医院列表中content数据类型
export type resHospitalListListsData = x[];

//响应整体医院列表结果数据接口
export interface resAllHospitalListResult {
    content: resHospitalListListsData,
    pageable: {
        sort: {
            sorted: true,
            unsorted: false,
            empty: false
        },
        pageNumber: 0,
        pageSize: 5,
        offset: 0,
        paged: true,
        unpaged: false
    },
    //每一页显示的条数
    totalPages: 5,
    //总条数
    totalElements: 22,
    last: false,
    first: true,
    sort: {
        sorted: true,
        unsorted: false,
        empty: false
    },
    numberOfElements: 5,
    size: 5,
    number: 0,
    empty: false
}

//响应所有省份单条数据的结构接口
export interface GetAllProvinceData {
    //省份序号
    id: number,
    //创建时间
    createTime: string,
    //更新时间
    updateTime: string,
    //是否被删除
    isDeleted: 0,
    param: {},
    //父级id
    parentId: number,
    //省份名称
    name: string,
    //省份值
    value: number,
    //省份编号
    dictCode: null,
    //是否存在子城市
    hasChildren: true
}

//响应所有省份单条数据数组类型的结构接口
export type GetAllProvinceLists = GetAllProvinceData[];

// 响应所有科室中单条对象结构接口
export interface resAllDepartmentData {
    //科室编号
    depcode: string;
    //科室名称
    depname: string;
    //二级科室
    children: null | resAllDepartmentLists
}

//响应所有科室的总结果数据接口
export type resAllDepartmentLists = resAllDepartmentData[];

//响应对应医院对应科室下的排班日期单条对象结构接口
export interface OnescheduleDate {
    //排班日期
    workDate: string,
    workDateMd: null,
    //星期几
    dayOfWeek: string,
    //当前的排班医师数量
    docCount: number,
    //可预约数
    reservedNumber: number,
    //剩余预约数
    availableNumber: number,
    //状态
    status: null
}

//bookingScheduleList数组类型
export type OnescheduleList = OnescheduleDate[];

//响应对应医院对应科室下排班日期整体结果
export interface resscheduleDateResult {
    //分页的总条数
    total: number,
    //预约日期数据
    bookingScheduleList: OnescheduleList,
    //基础信息
    baseMap: {
        hosname: string;
    }
}

//请求对应医院对应科室的请求参数接口
export interface reqscheduleDateparams {
    //当前页码
    page: number;
    //每页记录数
    limit: number;
    //医院编号
    hoscode: string;
    //科室编号
    depcode: string;
}

//请求对应医院对应科室下的排班数据请求参数接口
export interface reqscheduleDataparams {
    //医院编号
    hoscode: string;
    //科室编号
    depcode: string;
    //排班日期
    workDate: string;
}

//响应对应医院对应科室下的排班数据接口
export interface resscheduleOneData {
    id: string,
    createTime: string,
    updateTime: string,
    isDeleted: 0,
    param: {
        dayOfWeek: string,
        depname: string,
        hosname: string
    },
    hoscode: string,
    depcode: string,
    //职称
    title: string,
    docname: string,
    //技能
    skill: string,
    //号源时间
    workDate: string,
    workTime: number,
    //可预约数
    reservedNumber: number,
    //剩余预约数
    availableNumber: number,
    //挂号费
    amount: number,
    status: number,
    hosScheduleId: number
}

//响应对应医院对应科室下整体的响应数据类型
export type resscheduleLists = resscheduleOneData[];